package org.jeecg.modules.api.xxApi.vo;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@ApiModel(value = "XxApiDjtsMxParam对象", description = "销项管理-单据推送明细参数")
public class XxApiDjtsMxParam {

    /**
     * 租户编号
     */
    @ApiModelProperty(value = "租户编号", hidden = true)
    private Integer tenantId;

    /**
     * 企业主键
     */
    @ApiModelProperty(value = "企业主键", hidden = true)
    private String companyId;

    /**
     * 主表主键
     */
    @ApiModelProperty(value = "主表主键", hidden = true)
    private String fromid;

    /**
     * 业务单据编号
     */
    @ApiModelProperty(value = "业务单据编号", hidden = true)
    private String ywdjbh;

    /**
     * 明细行号
     */
    @ApiModelProperty(value = "明细行号 整型从1开始")
    @NotNull(message = "明细数据中明细行号不能为空")
    private Integer mxhh;

    /**
     * 商品代码
     */
    @ApiModelProperty(value = "商品代码")
    private String spdm;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    @NotBlank(message = "明细数据中商品名称不能为空")
    private String spmc;

    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    private String ggxh;

    /**
     * 计量单位
     */
    @ApiModelProperty(value = "规格型号(成品油时，单位只能为升、吨)")
    private String jldw;

    /**
     * 商品数量
     */
    @ApiModelProperty(value = "商品数量")
    @NotNull(message = "明细数据中商品数量不能为空")
    private BigDecimal spsl;

    /**
     * 含税单价
     */
    @ApiModelProperty(value = "含税单价(元,保留两位)")
    private BigDecimal hsdj;

    /**
     * 含税金额
     */
    @ApiModelProperty(value = "含税金额(元,保留两位)")
    private BigDecimal hsje;

    /**
     * 不含税单价
     */
    @ApiModelProperty(value = "不含税单价(元,保留两位)")
    private BigDecimal bhsdj;

    /**
     * 不含税金额
     */
    @ApiModelProperty(value = "不含税金额(元,保留两位)")
    private BigDecimal bhsje;

    /**
     * 税率
     */
    @ApiModelProperty(value = "税率 例:0.13")
    @NotNull(message = "明细数据中税率不能为空")
    private BigDecimal tax;

    /**
     * 税额
     */
    @ApiModelProperty(value = "税额(元,保留两位)")
    private BigDecimal taxje;

    /**
     * 折扣金额
     */
    @ApiModelProperty(value = "折扣金额(元,保留两位)")
    private BigDecimal zkje;

    /**
     * 税收编码
     */
    @ApiModelProperty(value = "税收编码(长度19位)")
    private String spbm;

    /**
     * 税收分类
     */
    @ApiModelProperty(value = "税收分类")
    private String ssmc;

    /**
     * 零税率
     */
    @ApiModelProperty(value = "零税率标识")
    private String lslbs;

    /**
     * 优惠政策
     */
    @ApiModelProperty(value = "优惠政策标识")
    private String yhzcbs;

    /**
     * 增值税特殊管理
     */
    @ApiModelProperty(value = "增值税特殊管理")
    private String zzstsgl;

    /**
     * 发票行性质
     */
    @ApiModelProperty(value = "发票行性质", hidden = true)
    private String fphxz;

}
